# 负责整个项目的配置信息

class Config:
    # 配置数据库和SQLALchemy
    HOSTNAME = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'test2'
    USERNAME = 'root'
    PASSWORD = 'root'
    DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)

    # 把链接数据库的参数设置到app中
    SQLALCHEMY_DATABASE_URI = DB_URI  # 当前SQLALchemy中关联的数据库的URL
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 是否追踪数据库中数据的修改（不需要）

    # 日志配置
    LOGGING_LEVEL = 'DEBUG'
    # 日志保存目录
    LOGGING_FILE_DIR = 'logs/'
    # 日志最大存储量
    LOGGING_FILE_MAX_BYTES = 300 * 1024 * 1024
    # 日志保存的个数
    LOGGING_FILE_BACKUP = 10

    # 限流器采用Redis保存数据，默认是内存，需要安装flask-redis
    RATELIMIT_STORAGE_URL = 'redis://192.168.3.131:6379/0'
    # 限制策略：移动窗口：时间窗口会自动变化
    RATELIMIT_STRATEGY = 'moving-window'


# 开发环境下的配置信息
class DevelopmentConfig(Config):
    DEBUG = True  # 调试
    SQLALCHEMY_ECHO = True  # 打印sql语句


# 生产环境中的配置信息
class ProductConfig(Config):
    pass


